1. Field of Invention
Various embodiments of the present invention relate to job scheduling, and more specifically, to a method for scheduling different combinations of jobs simultaneously running on a shared hardware platform.
2. Background
In a real-time computing platform running several jobs, each having their own time constraints, a scheduler may be used to define the processing units where each job is to be implemented. The scheduler may also be used to determine the time sequence according to which the jobs are to be implemented. Efficiency and even applicability of different scheduling policies depend on the requirements of the set of jobs that are being implemented by the platform.
A job may consist of several tasks. Likewise, a scheduler may be used to define the processing units where each task of one or more jobs is to be implemented. The scheduler may also be used to determine the time sequence according to which the tasks of one or more jobs are to be implemented.
Allocating jobs or tasks to processors, determining the order of execution of jobs or tasks on each processor and determining the execution times of each job or task may be performed either at run-time (a dynamic strategy) or at compile time (static strategy). Thus, the scheduling policy implements not only the rule according to which jobs or tasks are ordered, executed or assigned to processors, but also the relative time (either run-time or compile time) when these steps are performed.
Currently, there does not exist a scheduling policy that is devoted to applications where each job or task itself is a stationary one but the combinations of jobs are dynamically changed in time. In such piece-wise stationary applications several stationary jobs or tasks may be initiated or terminated at arbitrary time instances. A typical piece wise stationary application is the Software Defined Radio (SDR) system where each radio standard, in a fixed mode, is a stationary job with a fixed sequence of tasks having predictable worst-case execution times but every radio may turn On/Off, or change its mode at an arbitrary time instance.
SDR systems set very high requirements for the scheduler due to absolute real-time constraints of individual radios and unpredictable behavior of the system due to random change in the set of radios currently running on the system. Utilizing conventional dynamic schedulers is not feasible because they jeopardize the real-time constraints of radios and static schedulers cannot handle the dynamic (unpredictable) changing of radios.